/*
 *    Copyright (c) 2018-2025, lengleng All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * Redistributions of source code must retain the above copyright notice,
 * this list of conditions and the following disclaimer.
 * Redistributions in binary form must reproduce the above copyright
 * notice, this list of conditions and the following disclaimer in the
 * documentation and/or other materials provided with the distribution.
 * Neither the name of the pig4cloud.com developer nor the names of its
 * contributors may be used to endorse or promote products derived from
 * this software without specific prior written permission.
 * Author: lengleng (wangiegie@gmail.com)
 */

package com.excesys.exsecs.om.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.excesys.exsecs.om.dto.InspectionInfoDto;
import com.excesys.exsecs.om.entity.OmICheckSheet;
import com.excesys.exsecs.om.vo.SheetVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 巡检单
 *
 * @author weiyj
 * @date 2023-03-01 14:10:58
 */
@Mapper
public interface OmICheckSheetMapper extends BaseMapper<OmICheckSheet> {

	/**
	 * 分页查询巡检单信息（含关联信息）
	 * @param page 分页
	 * @param omICheckSheet 查询参数
	 * @return list
	 */
	IPage<SheetVo> getSheetWithRelPage(Page page, @Param("query") OmICheckSheet omICheckSheet);

	IPage<SheetVo> getSheetWithRelTodayPage(Page page, @Param("query") OmICheckSheet omICheckSheet);

	Map<String, String> getSheetCountMap(Long userId);

	Map<String, String> getVerifyNfcStrData(@Param("query") Map map);

	Map<String, String> getPlanStatus();

	Map<String, String> getSheetStatus();

	Map<String, String> getCheckAll();

	Map<String, String> getCheckThisYear();

	Map<String, String> getCheckThisMonth();

	Map<String, String> getCheckThisWeek();

	Map<String, String> getCheckThisToday();

	List<String> getOmICheckSheetList();

	List<String> getOmICheckSheetCountList();

	List<InspectionInfoDto> getInspector(@Param("flag") String flag);

	List<InspectionInfoDto> getInspectorByTime(@Param("startTime") String startTime, @Param("endTime") String endTime);

	List<SheetVo> getSheetNumInfo(@Param("query") Map map, @Param("name") String name);

	List<SheetVo> getSheetNumInfoByTime(@Param("startTime") String startTime, @Param("endTime") String endTime,
			@Param("name") String name);

	List<OmICheckSheet> getOverDueList();

	List<OmICheckSheet> getTaskCompletedNum(@Param("query") Map map, @Param("name") String name);

	List<OmICheckSheet> getTaskCompletedNumByTime(@Param("startTime") String startTime,
			@Param("endTime") String endTime, @Param("name") String name);

	List<OmICheckSheet> getTaskOverdueNums(@Param("query") Map map, @Param("name") String name);

	List<OmICheckSheet> getTaskOverdueNumsByTime(@Param("startTime") String startTime, @Param("endTime") String endTime,
			@Param("name") String name);

	List<OmICheckSheet> getInspectedSheetByToday();

	List<OmICheckSheet> getNotInspectedSheetByToday();

	OmICheckSheet getSheetByCheckNo(String checkNo);

}
